package co.edu.udea.iw.prestamos.modelo.dao;

import java.util.Date;
import java.util.List;

import co.edu.udea.iw.prestamos.modelo.dto.Dispositivo;

/**
 * Interfaz para los DAO de Dispositivo
 * 
 * @author Dave Rivera <daverivera90@gmail.com>
 * @since 02-07-2014
 * @version 1.0
 */
public interface DispositivoDAO extends CrudDAO<Dispositivo, Integer> {

	/**
	 * Obtiene los dispositivos de determinado tipo.
	 * @param  tipo Tipo del dispositivo.
	 * @return      Lista de dispositivos que concuerdan con el tipo.
	 */
	public List<Dispositivo> obtenerPorTipo(int tipo);

	/**
	 * Obtiene todos los dispositivos disponibles.
	 * @return Lista de dispositivos disponibles.
	 */
	public List<Dispositivo> obtenerDisponibles();
	
	/**
	 * Obtiene todos los dispositivos disponibles a partir de la fecha dada.
	 * @param fecha
	 * @return Lista de dispositivos disponibles.
	 */
	public List<Dispositivo> obtenerDisponiblesFecha(Date fecha);
	
	/**
	 * Obtiene todos los dispositivos que han sido dados de baja.
	 * @return Lista de dispositivos dados de baja.
	 */
	public List<Dispositivo> obtenerNoDisponibles();
}
